home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / util / wb / VisualPrefs_BA.lha / VisualPrefs_BA / VP-Developer_BA.doc < prev    next >
Text File  |  1999-02-10  |  4KB  |  115 lines

  1.  
  2.                                     Uvod
  3.  
  4.                   INTERFEJS VISUALPREFS-A ZA PROGRAMERE
  5.  
  6.                                Rad je u toku
  7.  
  8.  
  9. Ako si programer, mozes iskoristiti neke prednosti VisualPrefs-a.
  10.  
  11. Iako jos ne postoji programerski API za VisualPrefs, to ne znaci da nije
  12. moguce koristiti BOOPSI klase koje VisualPrefs dodaje sistemu.
  13.  
  14. Cilj tih klasa je pruzanje programerima jednostavnog nacina dobivanja izgleda
  15. VisualPrefs-a, tako da ne moraju cekati da ugradim patch u VisualPrefsu za
  16. njihove programe. ;-)
  17.  
  18. Trenutno postoji samo jedna klasa:
  19.  
  20. "tbiclass" - klasa naslova (titlebar-a).
  21.  
  22. Ova klasa dodaje najkoristenije slike za gadgete koje razni porgrami dodaju
  23. naslovima svojih prozora. Na primjer, "iconify" gadget ili "padlock" gadget
  24. DirOpusa 5.
  25.  
  26. Svi programi koji koriste tu klasu ce automatski imati isti izgled za gadgete
  27. aslova ako je VisualPrefs pokrenut. Ovo je sigurno bolje nego koristenje
  28. velike kolicine razlicitih verzija iste slike...
  29.  
  30. "Tbiclass" se moze koristiti upravo kao i "sysiclass", jer su oboje podklase
  31. "imageclass"a. "Ticlass" slika se moze kreirati pozivom NewObject()
  32. sa slijedecim tag-ovima:
  33.  
  34. SYSIA_DrawInfo - Ovaj je neophodan. MORAS dodati pointer "Tbiclass"u
  35.                  ili NewObject() nece raditi.
  36.  
  37. SYSIA_Which - Izbor slike; Za sad postoje sest razlicitih verzija slike:
  38.  
  39.               POPUPIMAGE    - Slika MUI-jevog "pop-up" gadget-a
  40.               MUIIMAGE      - Slika MUI-jevog "settings" gadget-a
  41.               SNAPSHOTIMAGE - Slika MUI-jevog "snapshot" gadget-a
  42.               ICONIFYIMAGE  - Slika "iconify" gadget-a
  43.               PADLOCKIMAGE  - Slika DirOpus-ovog "padlock" gadget-a
  44.               TBFRAMEIMAGE  - Slika generalnog praznog gadget-a
  45.  
  46. IA_Width, IA_Height - Ove prepoznaje samo TBFRAMEIMAGE tip;
  47.                       ostali tipovi slika ih ignoriraju i uvijek imaju
  48.                       istu velicinu kao i gadget dubine.
  49.  
  50. SYSIA_ReferenceFont - Ove prepoznaje samo TBFRAMEIMAGE tip;
  51.                       ostali tipovi slika ih ignoriraju i uvijek imaju
  52.                       istu velicinu kao i gadget dubine.
  53.  
  54. Ako NewObject() ne bude radio, trebalo bi mu dodati ugradjenu fallback
  55. sliku za gadget naslova. U svakom slucaju, zelim uskoro izdati freeware
  56. verziju "tbiclass"a na disketi koja se moze ukljuciti u distribuciju tvojih
  57. aplikacija. Ova klasa ce pruzati sve potrebne slike i moci ce biti zamijenjena
  58. automatski VisualPrefs-ovom ako je prisutna.
  59. To ce omoguciti cuvanje ugradjenih slika na veoma jednostavan nacin. ;-)
  60.  
  61. Vazno je napomenuti da ce sve klase "tbiclass"a imati vrijednost
  62. mage->LeftEdge-a -1. Ovo ne bi trebalo mijenjati, i trebalo bi smjestiti
  63. slike gadgeta u naslovu prema tome. Razlog za ovo, na prvi pogled, cudno
  64. ponasanje je da Intuition-ove slike gadgeta naslova, takodjer, rade na ovaj
  65. nacin, a treba biti sto je vise moguce kompatibilni sa Intuitionom.
  66.  
  67. Potrebno je i namjestiti i velicinu gadgeta prema potrebama vracene velicine
  68. slike.
  69.  
  70. Primjer bi mogao biti slijedeci:
  71.  
  72.    ...
  73.  
  74.    /* Kreiranje slike */
  75.  
  76.    if (!(iconifyimage = NewObject(NULL,"tbiclass",SYSIA_Which,ICONIFYIMAGE,
  77.                                                   SYSIA_DrawInfo,dri,
  78.                                                   TAG_END)))
  79.    {
  80.       iconifyimage = builtin_iconifyimage;
  81.    }
  82.  
  83.    /* Koristenje slike */
  84.  
  85.    gad->GadgetRender = iconifyimage;
  86.    ...
  87.  
  88.    /* Oslobadjanje slike */
  89.  
  90.    if (iconifyimage != builtin_iconifyimage) DisposeObject(iconifyimage);
  91.  
  92.    ...
  93.  
  94. To je sve. Za sada jos ne postoji pravi include file, tako da ako zelis koristiti
  95. "tbiclass" u tvojim aplikacijama zapamti dodati slijedece linije na pocetku 
  96. tvog source koda. :-]
  97.  
  98. ------- izrezi -------8<------- izrezi -------8<------- izrezi -------
  99.  
  100. #define POPUPIMAGE    (101)
  101. #define MUIIMAGE      (102)
  102. #define SNAPSHOTIMAGE (103)
  103. #define ICONIFYIMAGE  (104)
  104. #define PADLOCKIMAGE  (105)
  105. #define TBFRAMEIMAGE  (106)
  106.  
  107. ------- izrezi -------8<------- izrezi -------8<------- izrezi -------
  108.  
  109. Jedan od programa koji koriste "tbiclass", je Thomas Richter-ov ViNCEd.
  110.  
  111. Nadam se da ces i ti odluciti da podrzavas "tbiclass" i tako konacno
  112. das dobar izgled svim gadgetima u naslovu programa!
  113.  
  114. Hvala,
  115.                                       Massimo Tantignone (tanti@intercom.it)